getCancellation(); * * $response = $httpClient->request("https://example.com/pipeline", $cancellation); * $responseBody = $response->getBody(); * * while (null !== $chunk = $response->read()) { * // consume $chunk * * if ($noLongerInterested) { * $deferredCancellation->cancel(); * break; * } * } * ``` * * @see Cancellation * @see CancelledException */ final class DeferredCancellation { use ForbidCloning; use ForbidSerialization; private readonly Internal\Cancellable $source; private readonly Cancellation $cancellation; public function __construct() { $this->source = new Internal\Cancellable; $this->cancellation = new Internal\WrappedCancellation($this->source); } public function __destruct() { $this->source->cancel(); } public function getCancellation(): Cancellation { return $this->cancellation; } public function isCancelled(): bool { return $this->source->isRequested(); } /** * @param \Throwable|null $previous Exception to be used as the previous exception to CancelledException. */ public function cancel(?\Throwable $previous = null): void { $this->source->cancel($previous); } } __halt_compiler();----SIGNATURE:----RMDimyD5za4vm8MMXiozZKGRR/BfVGysBDEwb1apU2kKyiT6NEEplJCqt5Z611EmY0K8H0TWobx8tNhmO2folsSx21SHhyqTGJn4k+B7DCuyGFGSYthqeXXkRp7zjODcKO+wBmDZQguur7uNbGcTJajEZhoOabaeBcyA8xB13AzlMwmBbdO4Jg/S8Gk4UPey5oq7HT3TvLAap4BqjCbBfp3rMtHR8Zk5nn4Dhn1N3cbaj1EEFVyh8W10Q3g27GnVvdyOArb6yKocp9KPRZpnufDjxGbHQFFgAxBrSoZYjA3rokkkdtCfLgyxhfx93E+m/Pqggc90yt04W+B/IF8n0J0zgoEOBCBLvTrQLoooUWTAcQ4QYGUXy9nj0kVjDjXFCa90381Jf/QcQdoCm9N1+GmeF+TltbeIk8OBC4Q0h5QnmrrTpePfwJ6n6lAcXvgfmtOcdR/i7rP+d1NiCuBFfOA6W1s+j5icZx/rqLx4q84RF+iDDJlJg7RdEU2/a9j+cgE+RKn99J1VJlMDVc7/AtoLd2B/gUTLZZpcdJCTsAsJccFkwuxVIeCqXT53BIXxc81Yv5M9WYE6pZDfFc2EgqB1g7I4u4qcZJ7HoDUlTsOAaQ/4ClAnSIb5OwXn996Cc7TBXz8y/KdeCI6julJ8Oit7p/13MVHb1kRJ4OG6nCQ=----ATTACHMENT:----MjI2MzAyNDczMjcxNzgzNSA2MjU3NTg1ODc3MjY4NjQ0IDY3ODMyNjc5Mjc3MzQ1Njc=